package gui;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import domein.Auto;

public class SelectiePaneel extends DomeinPaneel
{
	/*Attributen*/
	private String titel;
	private String label;
	private JLabel lblSelectieInfo;
	private JLabel lblDetails;
	private JComboBox boxSelectie;
	private JLabel jLabel1;
	private JTextArea txaDetails;

	/*Constructor*/
	public SelectiePaneel(GuiController controller,String titel, String label)
	{
		super(controller);
		this.titel = titel;
		this.label = label;
		maakPaneel();
	}

	/*Methodes*/
	private void maakPaneel()
	{
		//Paneel eigenschappen
		this.setLayout(null);
		this.setBorder(BorderFactory.createTitledBorder(titel));
		this.setPreferredSize(new java.awt.Dimension(581, 150));

		//infolabel
		lblSelectieInfo = new JLabel();
		lblSelectieInfo.setText("Selecteer een " + this.label + ": ");
		lblSelectieInfo.setBounds(6, 16, 135, 20);
		lblSelectieInfo.setHorizontalAlignment(SwingConstants.LEFT);
		this.add(lblSelectieInfo);

		//dropdownlijst
		String array[] = new String[domeinController.maakLijstBeschikbareWagens().size()];
		int i=0;
		for(Auto eenAuto : domeinController.maakLijstBeschikbareWagens())
		{
			array[i] = (1+i)+") " +eenAuto.getAutoMerk() + " " + eenAuto.getAutoType();
			i++;
		}
		ComboBoxModel boxSelectieModel = new DefaultComboBoxModel(array);
		boxSelectie = new JComboBox();
		boxSelectie.setModel(boxSelectieModel);
		boxSelectie.setBounds(157, 11, 175, 27);
		boxSelectie.setEnabled(false);
		boxSelectie.addItemListener(new ItemListener()
		{
			public void itemStateChanged(ItemEvent event)
			{
				SelecteerAuto(event);
			}
		});

		this.add(boxSelectie);

		//details
		txaDetails = new JTextArea();
		txaDetails.setText("");
		txaDetails.setBounds(63, 55, 508, 83);
		txaDetails.setEditable(false);
		this.add(txaDetails);

		//labeldetail
		lblDetails = new JLabel();
		lblDetails.setText("Details: ");
		lblDetails.setBounds(10, 66, 107, 14);
		this.add(lblDetails);
	}

	/*ActionListeners*/
	private void SelecteerAuto(ItemEvent evt)
	{
		txaDetails.setText(domeinController.getAutos().geefAuto(boxSelectie.getSelectedIndex()).toString());
	}

	/*Getters & setters*/
	public JComboBox getBoxSelectie()
	{
		return boxSelectie;
	}
	public void setBoxSelectie(JComboBox boxSelectie)
	{
		this.boxSelectie = boxSelectie;
	}
	public JLabel getJLabel1()
	{
		return jLabel1;
	}
	public void setJLabel1(JLabel label1)
	{
		jLabel1 = label1;
	}
	public String getLabel()
	{
		return label;
	}
	public void setLabel(String label)
	{
		this.label = label;
	}
	public JLabel getLblDetails()
	{
		return lblDetails;
	}
	public void setLblDetails(JLabel lblDetails)
	{
		this.lblDetails = lblDetails;
	}
	public JLabel getLblSelectieInfo()
	{
		return lblSelectieInfo;
	}
	public void setLblSelectieInfo(JLabel lblSelectieInfo)
	{
		this.lblSelectieInfo = lblSelectieInfo;
	}
	public String getTitel()
	{
		return titel;
	}
	public void setTitel(String titel)
	{
		this.titel = titel;
	}
	public JTextArea getTxaDetails()
	{
		return txaDetails;
	}
	public void setTxaDetails(JTextArea txaDetails)
	{
		this.txaDetails = txaDetails;
	}
}
